Ejemplo 1 En Windows 7 SET TERM ^ ; create PROCEDURE CREARTABLA_T2_deb3 AS declare lcComando varchar(512) ; BEGIN lcComando = 'create table T2_deb3 ( cod integer not null primary key, nombre varchar (32) not null);'; EXECUTE STATEMENT :lcComando WITH COMMON TRANSACTION ON EXTERNAL '192.168.1.105/3050:/var/lib/firebird/2.5/data/db2serverdebian3' AS USER 'SYSDBA' PASSWORD 'masterkey' ; END^ SET TERM ; ^ GRANT EXECUTE ON PROCEDURE CREARTABLA_T2_deb3 TO SYSDBA; execute procedure CREARTABLA_T2_deb3 ----------------------------------------------------- Ejemplo 2 Windows 7 SET TERM ^ ; create PROCEDURE INSERTAR_SERVER_en_win_t2_deb3(atcod integer, atnombre varchar(32)) AS DECLARE VARIABLE lcComando VARCHAR(200); BEGIN lcComando = 'INSERT INTO T2_deb3 (cod, nombre) VALUES(' || :atcod || ',' || ASCII_CHAR(39) || :atnombre || ASCII_CHAR(39) || ')'; EXECUTE STATEMENT :lcComando WITH COMMON TRANSACTION ON EXTERNAL '192.168.0.118/3050:/var/lib/firebird/2.5/data/db2serverdebian3' AS USER 'SYSDBA' PASSWORD 'masterkey' ; END^ SET TERM ; ^ GRANT EXECUTE ON PROCEDURE INSERTAR_SERVER_en_win_t2_deb3 to sysdba; execute procedure INSERTAR_SERVER_en_win_t2_deb3(400,'cuatrocientos'); -------------------------------------------------------- Ejemplo 3 ServerWin 7 Registrarlo en su IP de Windows 7 create table T1_deb3 ( cod integer not null primary key, nombre varchar (32) not null ); ServerDeb3 Registrarlo en su IP de Debian create table T1_deb3 ( cod integer not null primary key, nombre varchar (32) not null ); ------------------------------------------------------------- En Windows 7 insert into t1_deb3 (cod,nombre) values (30,'treinta'); insert into t1_deb3 (cod,nombre) values (31,'treinta uno'); insert into t1_deb3 (cod,nombre) values (32,'treinta dos'); insert into t1_deb3 (cod,nombre) values (33,'treinta tres'); -------------------------------------------------------------- En Windows 7 SET TERM ^ ; create PROCEDURE COPIAR_CONTENIDO_DE_UNA_TABLA_1 RETURNS ( ATCOD Integer, ATNOMBRE Varchar(32) ) AS DECLARE VARIABLE lcComando VARCHAR(200); BEGIN FOR SELECT COD , NOMBRE FROM T1_deb3 INTO :ATCOD , :ATNOMBRE DO begin lcComando = 'INSERT INTO T1_deb3 (cod, nombre) VALUES(' || atcod || ',' || ASCII_CHAR(39) || atnombre || ASCII_CHAR(39) || ')'; EXECUTE STATEMENT :lcComando WITH COMMON TRANSACTION ON EXTERNAL '192.168.1.105/3050:/var/lib/firebird/2.5/data/db2serverdebian3' AS USER 'SYSDBA' PASSWORD 'masterkey' ; suspend; END END^ SET TERM ; ^ GRANT EXECUTE ON PROCEDURE COPIAR_CONTENIDO_DE_UNA_TABLA_1 TO SYSDBA; SELECT * FROM COPIAR_CONTENIDO_DE_UNA_TABLA_1; commit; En debian select * from T1_DEB3; -------------------------------------------------------------- Ejemplo 4 SET TERM ^ ; create TRIGGER TRG_AD_T1_deb3 for t1_deb3 ACTIVE AFTER DELETE POSITION 0 AS declare lcComando varchar(132) ; --declare atcod integer ; BEGIN --atcod = OLD.COD ; --lcComando = 'delete from T1_deb3 where COD = ' || :atcod ; lcComando = 'delete from T1_deb3 where COD = ' || OLD.COD ; EXECUTE STATEMENT :lcComando WITH AUTONOMOUS TRANSACTION ON EXTERNAL '192.168.0.118/3050:/var/lib/firebird/2.5/data/db2serverdebian3' AS USER 'SYSDBA' PASSWORD 'masterkey' ; END^ SET TERM ; ^ ----------------------------------------------------------- Ejemplo 5 SET TERM ^ ; create TRIGGER TRG_AI_t1_deb3 for t1_deb3 ACTIVE AFTER INSERT POSITION 0 AS declare lcComando varchar(132) ; declare atcod integer ; declare atnombre varchar(32) ; BEGIN atcod = NEW.COD ; atnombre = NEW.NOMBRE ; lcComando = 'INSERT INTO T1_deb3(cod, nombre) VALUES(' || :atcod || ',' || ASCII_CHAR(39) || :atnombre || ASCII_CHAR(39) || ')'; EXECUTE STATEMENT :lcComando WITH COMMON TRANSACTION ON EXTERNAL '192.168.0.113/3050:C:\Users\juan\Desktop\Unlu\db2serverwin7.fdb' AS USER 'SYSDBA' PASSWORD 'masterkey' ; END^ SET TERM ; ^ --------------------------------------------------- Ejemplo 6 SET TERM ^ ; create TRIGGER TRG_AU_T1_deb3 ACTIVE AFTER UPDATE POSITION 0 AS declare lcComando varchar(132) ; declare atcod integer ; declare atnombre varchar(32) ; BEGIN atcod = NEW.COD ; atnombre = NEW.NOMBRE ; lcComando = 'update T1_deb3 set nombre = ' || ASCII_CHAR(39) || :atnombre || ASCII_CHAR(39) || ' where COD = ' || :atcod ; EXECUTE STATEMENT :lcComando WITH COMMON TRANSACTION ON EXTERNAL '192.168.0.118/3050:/var/lib/firebird/2.5/data/db2serverdebian3' AS USER 'SYSDBA' PASSWORD 'masterkey'; END^ SET TERM ; ^ --------------------------------------------------------------